package com.itheima.dubbo.interfaces;


import com.itheima.commons.model.mongo.Comment;
import com.itheima.commons.model.vo.PageResult;

import java.util.List;

/**
 * 评论表接口
 */
public interface CommentApi {
    /**
     * 保存点赞/评论/喜欢数据到MongoDB
     *
     * @param comment
     * @return
     */
    Long saveComment(Comment comment);


    /**
     * 取消点赞/取消喜欢
     *
     * @return
     */
    Long delComment(Long userId, String publishId, Integer type);


    /**
     * 查询是否点赞/是否喜欢
     *
     * @param userId
     * @param publishId
     * @return
     */
    Boolean queryUserIsLikeORIsLove(Long userId, String publishId, Integer type);


    /**
     * 查询喜欢数/评论数/点赞数
     *
     * @param publishId
     * @param type
     * @return
     */
    Long queryCommentCount(String publishId, Integer type);


    /**
     * 查询评论列表
     *
     * @param publishId
     * @param page
     * @param pageSize
     * @return
     */
    PageResult queryCommentList(String publishId, Integer page, Integer pageSize);


    /**
     * 根据评论id查询评论对象
     *
     * @param publishId
     * @return
     */
    Comment queryCommentById(String publishId);

    /**
     * 查询对某个人的点赞/评论/喜欢列表
     *
     * @param page
     * @param pageSize
     * @param userId
     * @param commentType
     * @return
     */
    List<Comment> queryCommentListByUserId(Integer page, Integer pageSize, Long userId, Integer commentType);

    /**
     * 通过发布圈子的用户id查询发布了哪些圈子
     * @param publishUserId
     * @return
     */
    List<Comment> queryCommentByuid(Long publishUserId);
}
